package com.imooc.course.system.controller;

import com.imooc.course.server.dto.ResponseDto;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RefreshScope
@RestController
@RequestMapping("/nacos")
public class NacosTestController {

    @Value("${liucaimo}")
    private String liucaimo;

    /**
     * liucaimo参数来自nacos注册中心的配置管理。
     * 配置的dataId名称必须对应spring应用程序中application.yml文件的spring.application.name的值，
     * 后缀为.properties，或者.yaml也可以但要在bootstrap.properties中额外声明
     * 而spring应用程序中应当在resource目录中配置bootstrap.properties(这个文件可以为.yaml格式，亲测可以识别)，
     * bootstrap.properties的配置内容至少要包含两条：
     * spring.application.name(如果应用程序的application.yml文件中已经配置则这里可以不配置)
     * spring.cloud.nacos.config.server-addr=127.0.0.1:8848
     * 如果dataId名称的后缀名是.yaml则需要在bootstrap.properties中额外声明：
     * spring.cloud.nacos.config.file-extension=yaml
     * 以上需要alibaba的依赖支持
     * <groupId>com.alibaba.cloud</groupId>
     * <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
     * 至此，应用程序便可以能@Value("${liucaimo}")的方式直接读取注册中心配置的各项参数。
     */

    @GetMapping("/str")
    public ResponseDto getLiucaimo() {
        return ResponseDto.success().setContent(liucaimo);
    }

}
